package com.util;

import java.io.File;
import java.util.ArrayList;
import java.util.Collections;

import com.jl.update.HardwareUpdate;
/**
 * 按文件修改时间排序
 *
 * @author LiuYaDong
 *
 */
public class FileTimeSorf {

	private ArrayList<MyFile> list = new ArrayList<MyFile>();

	private String path = null;

	public String getPath() {
		return path;
	}


	public FileTimeSorf(String path) {
		super();
		this.path = path;
	}


	public void setPath(String path) {
		this.path = path;
	}


	public ArrayList<MyFile> init() {
		File p = new File(path);
		if (p.isFile()) {
			if (p.getName().indexOf(".jl2") > 0
					|| p.getName().indexOf(".JL2") > 0) {
				MyFile mf = new MyFile(p);
				list.add(mf);
				return list;
			}
		}
		File[] fs = p.listFiles();
		for (File e : fs) {
			if (e != null) {
				if (e.isDirectory())
					continue;
				// 只把文件放进去，文件夹忽略。如果不用忽略，可以把上一个语句注释去掉
				if (e.getName().lastIndexOf(".jl2") > 0
						|| e.getName().lastIndexOf(".JL2") > 0) {
					MyFile m = new MyFile(e);
					list.add(m);
				}
			}
		}
		return list;
	}

	public void sorf() {
		Collections.sort(list);
	}

	public void print() {
		for (Comparable<MyFile> e : list) {
			HardwareUpdate.list.add(e.toString());
		}
	}

}

class MyFile implements Comparable<MyFile> {

	private File file;

	public MyFile(File f) {
		file = f;
	}

	public File getFile() {
		return file;
	}

	@Override
	public int compareTo(MyFile o) {

		if (o instanceof MyFile) {
			if ((o.getFile()).lastModified() < this.file.lastModified()) {
				// 按照最后修改时间的顺序来排序
				// 最先修改的，就排最前
				// 如果你要变成最迟修改的，排到最前，修改地方有两处 ，分别为 [a] [b]
				return -1;// [a] return 1;
			}
			return 1;// [b] return -1;
		}
		return 0;
	}

	public String toString() {

		return file.getName();
		// 这个是输出它的绝对路径，如果你要输出文件名，可以改为 file.getName()
	}

}